39#ifdef PREINIT_SUPPORTED
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
51#include "drv_spi_master.h"
74#define EEPROM16_OPCODE_WREN 0x06
75#define EEPROM16_OPCODE_WRDI 0x04
76#define EEPROM16_OPCODE_RDSR 0x05
77#define EEPROM16_OPCODE_WRSR 0x01
78#define EEPROM16_OPCODE_READ 0x03
79#define EEPROM16_OPCODE_WRITE 0x02
97#define EEPROM16_STATUS_WPEN_MASK 0x80
98#define EEPROM16_STATUS_IPL_MASK 0x40
99#define EEPROM16_STATUS_BLOCK_PROTECT_NONE 0x00
100#define EEPROM16_STATUS_BLOCK_PROTECT_UPPER_QUARTER 0x04
101#define EEPROM16_STATUS_BLOCK_PROTECT_UPPER_HALF 0x08
102#define EEPROM16_STATUS_BLOCK_PROTECT_ALL 0x0C
103#define EEPROM16_STATUS_BLOCK_PROTECT_MASK 0x0C
104#define EEPROM16_STATUS_WEL_MASK 0x02
105#define EEPROM16_STATUS_RDY_MASK 0x01
111#define EEPROM16_MIN_ADDRESS 0x0000
112#define EEPROM16_MAX_ADDRESS 0x0FFF
113#define EEPROM16_PAGE_SIZE 32
114#define EEPROM16_PAGE_MASK 0x1F
124#define EEPROM16_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
125#define EEPROM16_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
143#define EEPROM16_MAP_MIKROBUS( cfg, mikrobus ) \
144 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
145 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
146 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
147 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
148 cfg.wp = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
149 cfg.hold = MIKROBUS( mikrobus, MIKROBUS_INT )
eeprom16_return_value_t
EEPROM 16 Click return value data.
Definition eeprom16.h:199
@ EEPROM16_OK
Definition eeprom16.h:200
@ EEPROM16_ERROR
Definition eeprom16.h:201
err_t eeprom16_disable_write(eeprom16_t *ctx)
EEPROM 16 disable write function.
err_t eeprom16_enable_write(eeprom16_t *ctx)
EEPROM 16 enable write function.
void eeprom16_set_wp_pin(eeprom16_t *ctx, uint8_t state)
EEPROM 16 set WP pin function.
err_t eeprom16_init(eeprom16_t *ctx, eeprom16_cfg_t *cfg)
EEPROM 16 initialization function.
err_t eeprom16_default_cfg(eeprom16_t *ctx)
EEPROM 16 default configuration function.
err_t eeprom16_set_block_protection(eeprom16_t *ctx, uint8_t block_protect)
EEPROM 16 set block protection function.
void eeprom16_cfg_setup(eeprom16_cfg_t *cfg)
EEPROM 16 configuration object setup function.
err_t eeprom16_memory_read(eeprom16_t *ctx, uint16_t address, uint8_t *data_out, uint16_t len)
EEPROM 16 memory read function.
err_t eeprom16_write_status(eeprom16_t *ctx, uint8_t status)
EEPROM 16 write status function.
err_t eeprom16_memory_write(eeprom16_t *ctx, uint16_t address, uint8_t *data_in, uint8_t len)
EEPROM 16 memory write function.
void eeprom16_set_hold_pin(eeprom16_t *ctx, uint8_t state)
EEPROM 16 set HOLD pin function.
err_t eeprom16_write_opcode(eeprom16_t *ctx, uint8_t opcode)
EEPROM 16 write opcode function.
err_t eeprom16_read_status(eeprom16_t *ctx, uint8_t *status)
EEPROM 16 read status function.
err_t eeprom16_read_opcode(eeprom16_t *ctx, uint8_t opcode, uint8_t *data_out, uint8_t len)
EEPROM 16 read opcode function.
This file contains SPI specific macros, functions, etc.
EEPROM 16 Click configuration object.
Definition eeprom16.h:176
spi_master_chip_select_polarity_t cs_polarity
Definition eeprom16.h:190
pin_name_t sck
Definition eeprom16.h:180
spi_master_mode_t spi_mode
Definition eeprom16.h:189
pin_name_t mosi
Definition eeprom16.h:179
uint32_t spi_speed
Definition eeprom16.h:188
pin_name_t wp
Definition eeprom16.h:184
pin_name_t miso
Definition eeprom16.h:178
pin_name_t hold
Definition eeprom16.h:185
pin_name_t cs
Definition eeprom16.h:181
EEPROM 16 Click context object.
Definition eeprom16.h:159
spi_master_t spi
Definition eeprom16.h:165
digital_out_t hold
Definition eeprom16.h:162
pin_name_t chip_select
Definition eeprom16.h:167
digital_out_t wp
Definition eeprom16.h:161